//---------------------------------------------------------------------------
#ifndef CLabelRH
#define CLabelRH
//---------------------------------------------------------------------------
#include <SysUtils.hpp>
#include <Controls.hpp>
#include <Classes.hpp>
#include <Forms.hpp>
#include <StdCtrls.hpp>
#include "CtrlStd.h"
//---------------------------------------------------------------------------
class PACKAGE_CTRLSTD CLabelRotate : public TCustomLabel
	{
	private:
		typedef TCustomLabel inherited;
		int		FAngle;
		int		FPosX;
		int		FPosY;
		bool	FbRelief;
		int		FReliefX;
		int		FReliefY;

	__published:
		__property		Align;
		__property	int Angle			= 	{ read=FAngle, 				write=SetAngle };
		__property		Color;
		__property 	 	Caption     	= 	{ read=GetCaption,  		write=SetCaption };
		__property  	DragCursor;
		__property  	DragMode;
		__property      Enabled;
		__property		FocusControl;
		__property      Font;
		__property      Hint;
		__property      ParentColor;
		__property      ParentShowHint;
		__property      PopupMenu;
		__property int	OffSetX			=	{ read = FPosX, 			write = SetPosX };
		__property int	OffSetY			=	{ read = FPosY, 			write = SetPosY };
		__property int	OffSetReliefX	=	{ read = FReliefX, 			write =	SetReliefX };
		__property int	OffSetReliefY	=	{ read = FReliefY, 			write =	SetReliefY };
		__property bool	Relief			= 	{ read = FbRelief, 			write =	SetbRelief };
		__property      ShowHint;
		__property bool	Transparent		=	{ read = GetTransparent,	write =	SetTransparent };
		__property      Visible;

		// Evenements
		__property OnStartDrag;
		__property OnDragDrop;
		__property OnDragOver;
		__property OnEndDrag;
		__property OnMouseDown;
		__property OnMouseMove;
		__property OnMouseUp;
		__property OnClick;
		__property OnDblClick;

	protected:
		virtual void __fastcall Paint(void);
		virtual void __fastcall FontChange( TObject *Sender );

	private:
		void 		__fastcall SetAngle( 		int 		iAngle );
		void        __fastcall SetCaption( const AnsiString aCaption    );
		void		__fastcall SetPosX( 		int 		iPosX );
		void		__fastcall SetPosY( 		int 		iPosY );
		AnsiString  __fastcall GetCaption() /*const*/;
		bool		__fastcall GetTransparent() /*const*/;
		void		__fastcall SetTransparent( 	bool 		bTransparent );
		void 		__fastcall SetbRelief( 		bool 		bRelief );
		void 		__fastcall SetReliefX( 		int			iReliefX );
		void 		__fastcall SetReliefY( 		int 		iReliefY );

	public:
		__fastcall CLabelRotate(TComponent* Owner);
	};
#endif
